package com.atguigu.tingshu.album.mapper;

import com.atguigu.tingshu.common.cache.ClearCache;
import com.atguigu.tingshu.common.constant.RedisConstant;
import com.atguigu.tingshu.model.album.AlbumStat;
import com.atguigu.tingshu.vo.album.AlbumStatVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface AlbumStatMapper extends BaseMapper<AlbumStat> {


    /**
     * 根据专辑ID获取专辑统计信息
     *
     * @param albumId 专辑ID
     * @return 专辑统计信息
     */
    AlbumStatVo selectAlbumStatVoByAlbumId(Long albumId);

    /**
     * 更新专辑统计信息
     *
     * @param albumId  专辑ID
     * @param statType 统计信息类型
     * @param count    统计数量
     */
    @ClearCache(prefix = RedisConstant.ALBUM_INFO_PREFIX, keyField = "albumId")
    void updateAlbumStat(@Param("albumId") Long albumId,
                         @Param("statType") String statType,
                         @Param("count") Integer count);
}
